Usando entornos virtuales¶

En la clase anterior dimos una previsualización sobre los ambientes virtuales y como estos ambientes virtuales evitarían que existan choques entre módulos , al tener un ambiente compartido.

Ambientes virtuales¶

Lo primero que vamos a hacer saber donde se ejecuta Python, hay que correr los siguientes comandos en la terminal:

which python3   #Ubicación del binario de Python3
which pi3   #Ubicación del binario de pip3

Esto nos dice en donde se encuentra de forma global.

image.png

image-2.png

Instalar entornos virtuales¶

Tenemos que descargar el siguiente paquete para poder trabajar con entornos virtuales:

apt install -y python3-venv

image.png

Me sale que no tengo permisos y procedo a correr el siguiente comando como administrador.

sudo apt install -y python3-venv

image-2.png

Termino la instalación

Listar los proyectos:

image.png

Como se puede observar tenemos 3 proyectos:

  • app
  • charts
  • game

Para cada uno de los proyectos vamos a crear su propio ambiente.

Creando ambiente virtual en app¶

Ejecutemos los siguientes comandos:

#saber en que directorio estoy
pwd
cd app
#Creamos el entorno virtual con el nombre "env-app"
python3 -m venv env-app

NOTA: Debemos recordar que tenemos que estar dentro de la carpeta app.

Cuando ejecutamos el comando nos sale una carpeta con el mismo nombre.

image.png

Activando el ambiente virtual¶

Volvemos a la terminal y escribimos lo siguiente:

#Activar el entorno dentro de la carpeta creada
source env-app/bin/activate

image.png

image-2.png

También podemos salir del ambiente virtual del que estamos

#Desactivar el entorno 
deactivate

image-3.png

Como se puede observar en la terminal, regresamos al entorno base. y ya no nos aparece "env-app".

Entonces siempre habrá un indicativo si tenemos el ambiente virtual prendido o apagado.

Verificando donde se encuentra Python¶

Si activamos nuevamente el entorno y preguntamos donde se encuentra Python instalado, nos aparecerá lo siguiente:

#Activar el entorno virtual
source env-app/bin/activate
#preguntar donde se encuentra Python
which python3

image.png

Ahora tanto python como pip apuntan al directorio del proyecto app.

Esto es una manera de verificar si tenemos configurado el ambiente de una forma correcta

Verificando librerías¶

Corramos el siguiente comando en la terminal:

pip3 freeze

No sale nada, es decir no nos salen las librerías instaladas.

image.png

¿Por qué? Porque ahora tenemos el ambiente aislado, es decir en este ambiente no se ha instalado ningún modulo.

Antes nos salían todos los paquetes que teníamos instalados, o que Python instala por defecto en toda la maquina, pero solo necesitamos los paquetes que usemos en este proyecto app.

¿Cuales necesitamos?

  • matplotlib

Vamos a instalarlo y verificar que estemos con el ambiente virtual encendido.

#instalar librería
pip3 install matplotlib
#verificar librerias
pip3 freeze

Nos arroja lo siguiente:

image-2.png

Vemos que las dependencias que tiene este proyecto, ya se encuentran aisladas, además que ya no van a chocar las librerías. Desactivemos el entorno y revisemos que librerías tenemos:

deactivate
cd ..
pip freeze

image.png Debido a que me dió error, tengo que correr el siguiente comando, para ver si funciona:

source miniforge3/bin/activate

image-2.png

Me sigue dando error. Tal vez se deba a que tengo instalado Miniforge con conda y mamba.

Creando otro entorno virtual¶

Procederemos a ir a la carpeta game y crear otro entorno virtual, corremos los siguientes comandos:

#Ir al directorio
cd game
#Crear un entorno virtual
python3 -m venv env-game
#Entrar al ambiente
source env-game/bin/activate
#instalar otras librerías
pip3 install matplotlib==3.5.0

Instalamos

image.png

Listo!, verificamos que versiones existen con pip3 freeze:

image.png

Desactivamos los entornos:

image.png

Vemos que existen versiones diferentes de matplotlib

image-2.png

y ademas ubicaciones diferentes de python:

image.png

Así ya cada proyecto tiene sus propios módulos de forma aislada y librerías.